﻿////////////////////////////////////////////////////////////////////////
//Autor: Gabriel Tame Borao  - gabrieltame@yahoo.es 
//Fecha: 2010/09/15 01:26
//Solucion: GTameReport.sln
//Proyecto: GTameReport
//Fichero: CustomReportItemType.cs
//
//	Copyright (C) 2010  Gabriel Tame Borao (GTB)
//
//This program is free software: you can redistribute it and/or modify
//it under the terms of the GNU General Public License as published by
//the Free Software Foundation, either version 3 of the License, or
//(at your option) any later version.
//
//This program is distributed in the hope that it will be useful,
//but WITHOUT ANY WARRANTY; without even the implied warranty of
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//GNU General Public License for more details.
//
//You should have received a copy of the GNU General Public License
//along with this program.  If not, see <http://www.gnu.org/licenses/>.
////////////////////////////////////////////////////////////////////////
namespace GTameReport
{
    using Rdl;
    using System;
    using System.Collections;

    public class CustomReportItemType
    {
        private ReportItemsTypeSingle _AltReportItem;
        private string _Bookmark;
        private GTameReport.CustomDataType _CustomData;
        private GTameReport.CustomPropertiesType _CustomProperties;
        private string _DataElementName;
        private CustomReportItemTypeDataElementOutput _DataElementOutput;
        private string _Height;
        private string _Label;
        private string _Left;
        private string _RepeatWith;
        private GTameReport.StyleType _Style;
        private string _Top;
        private string _Type;
        private GTameReport.VisibilityType _Visibility;
        private string _Width;
        private uint? _ZIndex = null;
        private string nameField;

        public Rdl.CustomReportItemType Write()
        {
            Rdl.CustomReportItemType type = new Rdl.CustomReportItemType();
            ArrayList list = new ArrayList();
            ArrayList list2 = new ArrayList();
            type.Name = this.nameField;
            if (this._AltReportItem != null)
            {
                list.Add(this._AltReportItem.Write());
                list2.Add(ItemsChoiceType29.AltReportItem);
            }
            if (this._Bookmark != null)
            {
                list.Add(this._Bookmark);
                list2.Add(ItemsChoiceType29.Bookmark);
            }
            if (this._CustomData != null)
            {
                list.Add(this._CustomData.Write());
                list2.Add(ItemsChoiceType29.CustomData);
            }
            if (this._CustomProperties != null)
            {
                list.Add(this._CustomProperties.Write());
                list2.Add(ItemsChoiceType29.CustomProperties);
            }
            if (this._DataElementName != null)
            {
                list.Add(this._DataElementName);
                list2.Add(ItemsChoiceType29.DataElementName);
            }
            list.Add(this._DataElementOutput);
            list2.Add(ItemsChoiceType29.DataElementOutput);
            if (this._Height != null)
            {
                list.Add(this._Height);
                list2.Add(ItemsChoiceType29.Height);
            }
            if (this._Label != null)
            {
                list.Add(this._Label);
                list2.Add(ItemsChoiceType29.Label);
            }
            if (this._Left != null)
            {
                list.Add(this._Left);
                list2.Add(ItemsChoiceType29.Left);
            }
            if (this._RepeatWith != null)
            {
                list.Add(this._RepeatWith);
                list2.Add(ItemsChoiceType29.RepeatWith);
            }
            if (this._Style != null)
            {
                list.Add(this._Style.Write());
                list2.Add(ItemsChoiceType29.Style);
            }
            if (this._Top != null)
            {
                list.Add(this._Top);
                list2.Add(ItemsChoiceType29.Top);
            }
            if (this._Type != null)
            {
                list.Add(this._Type);
                list2.Add(ItemsChoiceType29.Type);
            }
            if (this._Visibility != null)
            {
                list.Add(this._Visibility.Write());
                list2.Add(ItemsChoiceType29.Visibility);
            }
            if (this._Width != null)
            {
                list.Add(this._Width);
                list2.Add(ItemsChoiceType29.Width);
            }
            if (this._ZIndex.HasValue)
            {
                list.Add(this._ZIndex);
                list2.Add(ItemsChoiceType29.ZIndex);
            }
            type.Items = list.ToArray();
            type.ItemsElementName = (ItemsChoiceType29[]) list2.ToArray(typeof(ItemsChoiceType29));
            list2 = null;
            list = null;
            return type;
        }

        public ReportItemsTypeSingle AltReportItem
        {
            get
            {
                if (this._AltReportItem == null)
                {
                    this._AltReportItem = new ReportItemsTypeSingle();
                }
                return this._AltReportItem;
            }
            set
            {
                this._AltReportItem = value;
            }
        }

        public string Bookmark
        {
            get
            {
                return this._Bookmark;
            }
            set
            {
                this._Bookmark = value;
            }
        }

        public GTameReport.CustomDataType CustomData
        {
            get
            {
                if (this._CustomData == null)
                {
                    this._CustomData = new GTameReport.CustomDataType();
                }
                return this._CustomData;
            }
            set
            {
                this._CustomData = value;
            }
        }

        public GTameReport.CustomPropertiesType CustomProperties
        {
            get
            {
                if (this._CustomProperties == null)
                {
                    this._CustomProperties = new GTameReport.CustomPropertiesType();
                }
                return this._CustomProperties;
            }
            set
            {
                this._CustomProperties = value;
            }
        }

        public string DataElementName
        {
            get
            {
                return this._DataElementName;
            }
            set
            {
                this._DataElementName = value;
            }
        }

        public CustomReportItemTypeDataElementOutput DataElementOutput
        {
            get
            {
                return this._DataElementOutput;
            }
            set
            {
                this._DataElementOutput = value;
            }
        }

        public string Height
        {
            get
            {
                return this._Height;
            }
            set
            {
                this._Height = value;
            }
        }

        public string Label
        {
            get
            {
                return this._Label;
            }
            set
            {
                this._Label = value;
            }
        }

        public string Left
        {
            get
            {
                return this._Left;
            }
            set
            {
                this._Left = value;
            }
        }

        public string Name
        {
            get
            {
                return this.nameField;
            }
            set
            {
                this.nameField = value;
            }
        }

        public string RepeatWith
        {
            get
            {
                return this._RepeatWith;
            }
            set
            {
                this._RepeatWith = value;
            }
        }

        public GTameReport.StyleType Style
        {
            get
            {
                if (this._Style == null)
                {
                    this._Style = new GTameReport.StyleType();
                }
                return this._Style;
            }
            set
            {
                this._Style = value;
            }
        }

        public string Top
        {
            get
            {
                return this._Top;
            }
            set
            {
                this._Top = value;
            }
        }

        public string Type
        {
            get
            {
                return this._Type;
            }
            set
            {
                this._Type = value;
            }
        }

        public GTameReport.VisibilityType Visibility
        {
            get
            {
                if (this._Visibility == null)
                {
                    this._Visibility = new GTameReport.VisibilityType();
                }
                return this._Visibility;
            }
            set
            {
                this._Visibility = value;
            }
        }

        public string Width
        {
            get
            {
                return this._Width;
            }
            set
            {
                this._Width = value;
            }
        }

        public uint? ZIndex
        {
            get
            {
                return this._ZIndex;
            }
            set
            {
                this._ZIndex = value;
            }
        }
    }
}

